package com.example.userapi.controller;

import com.example.userapi.entity.User;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/users") // 类级别路径：所有接口都以/users开头
public class UserController {

    // 模拟数据库（静态数据）
    private static final List<User> users = new ArrayList<>();
    static {
        users.add(new User(1, "张三", 20));
        users.add(new User(2, "李四", 22));
    }

    // 1. GET /users：查询所有用户
    @GetMapping
    public List<User> getAllUsers() {
        return users; // 返回模拟的用户列表
    }

    // 2. GET /users/{id}：根据ID查询用户
    @GetMapping("/{id}")
    public User getUserById(@PathVariable Integer id) {
        // 模拟查询：返回ID匹配的用户（实际应处理null情况）
        return users.stream()
                .filter(user -> user.getId().equals(id))
                .findFirst()
                .orElse(null);
    }

    // 3. POST /users：新增用户（接收JSON参数，返回新增的用户）
    @PostMapping
    public User addUser(@RequestBody User user) {
        // 模拟新增：实际应生成ID并保存到数据库
        users.add(user);
        return user;
    }

    // 4. DELETE /users/{id}：删除用户
    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Integer id) {
        // 模拟删除：返回成功信息
        users.removeIf(user -> user.getId().equals(id));
        return "用户ID=" + id + " 删除成功";
    }
}